home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / src / lib / c / net / RCS / herror.c,v < prev    next >
Text File  |  1988-06-20  |  2KB  |  80 lines

  1. head     1.1;
  2. access   ;
  3. symbols  ;
  4. locks    ; strict;
  5. comment  @ * @;
  6.  
  7.  
  8. 1.1
  9. date     88.06.20.09.57.14;  author ouster;  state Exp;
  10. branches ;
  11. next     ;
  12.  
  13.  
  14. desc
  15. @@
  16.  
  17.  
  18.  
  19. 1.1
  20. log
  21. @Initial revision
  22. @
  23. text
  24. @/*
  25.  * Copyright (c) 1987 Regents of the University of California.
  26.  * All rights reserved.
  27.  *
  28.  * Redistribution and use in source and binary forms are permitted
  29.  * provided that this notice is preserved and that due credit is given
  30.  * to the University of California at Berkeley. The name of the University
  31.  * may not be used to endorse or promote products derived from this
  32.  * software without specific prior written permission. This software
  33.  * is provided ``as is'' without express or implied warranty.
  34.  */
  35.  
  36. #if defined(LIBC_SCCS) && !defined(lint)
  37. static char sccsid[] = "@@(#)herror.c    6.2 (Berkeley) 3/7/88";
  38. #endif /* LIBC_SCCS and not lint */
  39.  
  40. #include <sys/types.h>
  41. #include <sys/uio.h>
  42.  
  43. char    *h_errlist[] = {
  44.     "Error 0",
  45.     "Unknown host",                /* 1 HOST_NOT_FOUND */
  46.     "Host name lookup failure",        /* 2 TRY_AGAIN */
  47.     "Unknown server error",            /* 3 NO_RECOVERY */
  48.     "No address associated with name",    /* 4 NO_ADDRESS */
  49. };
  50. int    h_nerr = { sizeof(h_errlist)/sizeof(h_errlist[0]) };
  51.  
  52. extern int    h_errno;
  53.  
  54. /*
  55.  * herror --
  56.  *    print the error indicated by the h_errno value.
  57.  */
  58. herror(s)
  59.     char *s;
  60. {
  61.     struct iovec iov[4];
  62.     register struct iovec *v = iov;
  63.  
  64.     if (s && *s) {
  65.         v->iov_base = s;
  66.         v->iov_len = strlen(s);
  67.         v++;
  68.         v->iov_base = ": ";
  69.         v->iov_len = 2;
  70.         v++;
  71.     }
  72.     v->iov_base = h_errno < h_nerr ? h_errlist[h_errno] : "Unknown error";
  73.     v->iov_len = strlen(v->iov_base);
  74.     v++;
  75.     v->iov_base = "\n";
  76.     v->iov_len = 1;
  77.     writev(2, iov, (v - iov) + 1);
  78. }
  79. @
  80.